Context Aware Fall Detection Using a Mobile Device

ABSTRACT

In an example method, a mobile device receives sensor data obtained by one or more sensor over a time period. The one or more sensors are worn by a user. Further, the mobile device determines a context of the user based on the sensor data, and obtains a set of rules for processing the sensor data based on the context, where the set of rules is specific to the context. The mobile device determines at least one of a likelihood that the user has fallen or a likelihood that the user requires assistance based on the sensor data and the set of rules, and generates one or more notifications based on at least one of the likelihood that the user has fallen or the likelihood that the user requires assistance.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U.S. Provisional Patent ApplicationNo. 63/242,998, filed Sep. 10, 2021, the entire contents of which areincorporated herein by reference.

TECHNICAL FIELD

The disclosure relates to systems and methods for determining whether auser has fallen using a mobile device.

BACKGROUND

A motion sensor is a device that measures the motion experienced by anobject (e.g., the velocity or acceleration of the object with respect totime, the orientation or change in orientation of the object withrespect to time, etc.). In some cases, a mobile device (e.g., a cellularphone, a smart phone, a tablet computer, a wearable electronic devicesuch as a smart watch, etc.) can include one or more motion sensors thatdetermine the motion experienced by the mobile device over a period oftime. If the mobile device is worn by a user, the measurements obtainedby the motion sensor can be used to determine the motion experienced bythe user over the period of time.

SUMMARY

Systems, methods, devices and non-transitory, computer-readable mediaare disclosed for electronically determining whether a user has fallenusing a mobile device.

In an aspect, a method includes: receiving, by a mobile device, sensordata obtained by one or more sensor over a time period, where the one ormore sensors are worn by a user; determining, by the mobile device, acontext of the user based on the sensor data; obtaining, by the mobiledevice based on the context, a set of rules for processing the sensordata, where the set of rules is specific to the context; determining, bythe mobile device, at least one of a likelihood that the user has fallenor a likelihood that the user requires assistance based on the sensordata and the set of rules; and generating, by the mobile device, one ormore notifications based on at least one of the likelihood that the userhas fallen or the likelihood that the user requires assistance.

Implementations of this aspect can include one or more of the followingfeatures.

In some implementations, the sensor data can include location dataobtained by one or more location sensors of the mobile device.

In some implementations, the sensor data can include acceleration dataobtained by one or more acceleration sensors of the mobile device.

In some implementations, the sensor data can include orientation dataobtained by one or more orientation sensors of the mobile device.

In some implementations, the context can correspond to the userbicycling during the time period.

In some implementations, determining the likelihood that the user hasfallen and/or the likelihood that the user requires assistance caninclude: determining, based on the sensor data, that a distance traveledby the user prior over the period of time is greater than a firstthreshold value; determining, based on the sensor data, that a variationin a direction of impacts experienced by the user over the period oftime is less than a second threshold value; determining, based on thesensor data, that a rotation of the user's wrist over the period of timeis less than a third threshold value; and determining that the user hasfallen and/or requires assistance based on the determination that thedistance traveled by the user prior over the period of time is greaterthan the first threshold value, the determination that the variation ina direction of impacts experienced by the user over the period of timeis less than the second threshold value, and the determination that therotation of the user's wrist over the period of time is less than thethird threshold value.

In some implementations, determining the likelihood that the user hasfallen and/or the likelihood that the user requires assistance caninclude: determining, based on the sensor data, that a magnitude of animpact experienced by the user over the period of time in a firstdirection is greater than a first threshold value; and determining thatthe user has fallen and/or requires assistance based on thedetermination that the magnitude of the impact experienced by the userover the period of time in the first direction is greater than the firstthreshold value.

In some implementations, determining the likelihood that the user hasfallen and/or the likelihood that the user requires assistance caninclude: determining, based on the sensor data, that a change in anorientation of the user's hand over the period of time is greater than afirst threshold value; determining, based on the sensor data, that amagnitude of an impact experienced by the user over the period of timein a first direction is greater than a second threshold value, where thefirst direction is orthogonal to the second threshold value;determining, based on the sensor data, that a magnitude of an impactexperienced by the user over the period of time in a second direction isgreater than a third threshold value; and determining that the user hasfallen and/or requires assistance based on the determination that thechange in an orientation of the user's hand over the period of time isgreater than the first threshold value, the determination that themagnitude of the impact experienced by the user over the period of timein the first direction is greater than the second threshold value, andthe determination that the magnitude of an impact experienced by theuser over the period of time in the second direction is greater than thethird threshold value.

In some implementations, the method can further include: receiving, bythe mobile device, second sensor data obtained by the one or more sensorover a second time period; determining, by the mobile device, a secondcontext of the user based on the second sensor data; obtaining, by themobile device based on the second context, a second set of rules forprocessing the sensor data, where the second set of rules is specific tothe second context; determining, by the mobile device, at least one of alikelihood that the user has fallen and/or a likelihood that the userrequires assistance based on the sensor data and the second set ofrules; and generating, by the mobile device, one or more secondnotifications based on at least one of the likelihood that the user hasfallen or the likelihood that the user requires assistance.

In some implementations, the second context can correspond to the userwalking during the second time period.

In some implementations, the second context can correspond to the userplaying at least one of basketball or volleyball during the second timeperiod.

In some implementations, generating the one or more notifications caninclude: transmitting a first notification to a communications deviceremote from the mobile device, the first notification including anindication that the user has fallen.

In some implementations, the communications device can be an emergencyresponse system.

In some implementations, the mobile device can be a wearable mobiledevice.

In some implementations, at least some of the one or more sensors can bedisposed on or in the mobile device.

In some implementations, at least some of the one or more sensors can beremote from the mobile device.

Other implementations are directed to systems, devices andnon-transitory, computer-readable mediums including computer-executableinstructions for performing the techniques described herein.

The details of one or more embodiments are set forth in the accompanyingdrawings and the description below. Other features and advantages willbe apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram of an example system for determining whether a userhas fallen and/or may be in need of assistance.

FIG. 2A is a diagram showing an example position of a mobile device on auser's body.

FIG. 2B is a diagram showing example directional axes with respect amobile device.

FIG. 3 is a diagram of an example state machine for determining whethera user has fallen and/or requires assistance

FIGS. 4A and 4B are diagrams of example sensor data obtained by a mobiledevice.

FIG. 5 is a diagram of an example bicycle and a user wearing a mobiledevice.

FIGS. 6A and 6B are diagrams of additional example sensor data obtainedby a mobile device.

FIG. 7 is a diagram of another example bicycle and a user wearing amobile device.

FIG. 8 is a flow char diagram of an example process for generating andtransmitting notifications.

FIGS. 9A-9C are diagrams of example alert notification generated by amobile device.

FIG. 10 is a flow chart diagram of an example process for determiningwhether a user has fallen and/or requires assistance.

FIG. 11 is a block diagram of an example architecture for implementingthe features and processes described in reference to FIGS. 1-11 .

DETAILED DESCRIPTION Overview

FIG. 1 shows an example system 100 for determining whether a user hasfallen and/or may be in need of assistance. The system 100 includes amobile device 102, a server computer system 104, communications devices106, and a network 108.

The implementations described herein enable the system 100 to determinewhether a user has fallen and/or whether the user may be in need ofassistance more accurately, such that resources can be more effectivelyused. For instance, the system 100 can determine whether the user hasfallen and/or whether the user may be in need of assistance with fewerfalse positives. Thus, the system 100 is less likely to consumecomputational and/or network resources to generate and transmitnotifications to others when the user does not need assistance. Further,medical and logistical resources can be deployed to assist a user with agreater degree of confidence that they are needed, thereby reducing thelikelihood of waste. Accordingly, resources can be consumed moreefficiently, and in a manner that increases the effective responsecapacity of one or more systems (e.g., a computer system, acommunications system, and/or an emergency response system).

The mobile device 102 can be any portable electronic device forreceiving, processing, and/or transmitting data, including but notlimited to cellular phones, smart phones, tablet computers, wearablecomputers (e.g., smart watches), and the like. The mobile device 102 iscommunicatively connected to server computer system 104 and/or thecommunications devices 106 using the network 108.

The server computer system 104 is communicatively connected to mobiledevice 102 and/or the communications devices 106 using the network 108.The server computer system 104 is illustrated as a respective singlecomponent. However, in practice, it can be implemented on one or morecomputing devices (e.g., each computing device including at least oneprocessor such as a microprocessor or microcontroller). A servercomputer system 104 can be, for instance, a single computing device thatis connected to the network 108. In some implementations, the servercomputer system 104 can include multiple computing devices that areconnected to the network 108. In some implementations, the servercomputer system 104 need not be located locally to the rest of thesystem 100, and portions of a server computer system 104 can be locatedin one or more remote physical locations.

A communications device 106 can be any device that is used to transmitand/or receive information transmitted across the network 108. Examplesof the communications devices 106 include computers (such as desktopcomputers, notebook computers, server systems, etc.), mobile devices(such as cellular phones, smartphones, tablets, personal dataassistants, notebook computers with networking capability), telephones,faxes, and other devices capable of transmitting and receiving data fromthe network 108. The communications devices 106 can include devices thatoperate using one or more operating system (e.g., Apple iOS, ApplewatchOS, Apple macOS, Microsoft Windows, Linux, Unix, Android, etc.)and/or architectures (e.g., x86, PowerPC, ARM, etc.) In someimplementations, one or more of the communications devices 106 need notbe located locally with respect to the rest of the system 100, and oneor more of the communications devices 106 can be located in one or moreremote physical locations.

The network 108 can be any communications network through which data canbe transferred and shared. For example, the network 108 can be a localarea network (LAN) or a wide-area network (WAN), such as the Internet.As another example, the network 108 can be a telephone or cellularcommunications network. The network 108 can be implemented using variousnetworking interfaces, for instance wireless networking interfaces (suchas Wi-Fi, Bluetooth, or infrared) or wired networking interfaces (suchas Ethernet or serial connection). The network 108 also can includecombinations of more than one network, and can be implemented using oneor more networking interfaces.

As described above, a user 110 can position the mobile device 102 on herbody, and go about her daily life. As an example, as shown in FIG. 2A,the mobile device 102 can be a wearable electronic device or wearablecomputer (e.g., a smart watch), that is secured to a wrist 202 of theuser 110. The mobile device 102 can be secured to the user 110, forexample, through a band or strap 204 that encircles the wrist 202.Further, the orientation of the mobile device 102 can differ, depend onthe location at which is it placed on the user's body and the user'spositioning of her body. As an example, the orientation 206 of themobile device 102 is shown in FIG. 2A. The orientation 206 can refer,for example, to a vector projecting from a front edge of the mobiledevice 102 (e.g., the y-axis shown in FIG. 2B).

Although an example mobile device 102 and an example position of themobile device 102 is shown, it is understood that these are merelyillustrative examples. In practice, the mobile device 102 can be anyportable electronic device for receiving, processing, and/ortransmitting data, including but not limited to cellular phones, smartphones, tablet computers, wearable computers (e.g., smart watches), andthe like. As an example, the mobile device 102 can be implementedaccording to the architecture 300 shown and described with respect toFIG. 3 . Further, in practice, the mobile device 102 can be positionedon other locations of a user's body (e.g., arm, shoulder, leg, hip,head, abdomen, hand, foot, or any other location).

In an example usage of the system 100, a user 110 positions the mobiledevice 102 on her body, and goes about her daily life. This can include,for example, walking, running, bicycling, sitting, laying down,participating in a sport or athletic activity (e.g., basketball,volleyball, etc.), or any other physical activity. During this time, themobile device 102 collects sensor data regarding movement of the mobiledevice 102, an orientation of the mobile device 102, and/or otherdynamic properties of the mobile device 102 and/or the user 110.

For instance, using the motion sensors 310 shown in FIG. X2 (e.g., oneor more accelerometers), the mobile device 102 can measure anacceleration experienced by the motion sensors 310, and correspondingly,the acceleration experienced by the mobile device 102. Further, usingthe motion sensors 310 (e.g., one or more compasses, gyroscopes, inertiameasurement units, etc.), the mobile device 102 can measure anorientation of the motion sensors 310, and correspondingly, anorientation of the mobile device 102. In some cases, the motion sensors310 can collect data continuously or periodically over a period of timeor in response to a trigger event. In some cases, the motion sensors 310can collect motion data with respect to one or more specific directionsrelative to the orientation of the mobile device 102. For example, themotion sensors 310 can collect sensor data regarding an acceleration ofthe mobile device 102 with respect to the x-axis (e.g., a vectorprojecting from a side edge of the mobile device 102, as shown in FIG.2B), the y-axis (e.g., a vector projecting from a front edge of themobile device 102, as shown in FIG. 2B) and/or the z-axis (e.g., avector projecting from a top surface or screen of the mobile device 102,as shown in FIG. 2B), where the x-axis, y-axis, and z-axis refer to aCartesian coordinate system in a frame of reference fixed to the mobiledevice 102 (e.g., a “body” frame).

Based on this information, the system 100 determines whether the user110 has fallen, and if so, whether the user 110 may be in need ofassistance.

As an example, the user 110 may stumble fall to the ground. Further,after falling, the user 110 may be unable to stand again on her ownand/or may have suffered from an injury as a result of the fall. Thus,she may be in need of assistance, such as physical assistance instanding and/or recovering from the fall, medical attention to treatinjuries sustained in the fall, or other help. In response, the system100 can automatically notify others of the situation. For example, themobile device 102 can generate and transmit a notification to one ormore of the communications devices 106 to notify one or more users 112(e.g., caretakers, physicians, medical responders, emergency contactpersons, etc.) of the situation, such that they can take action. Asanother example, the mobile device 102 can generate and transmit anotification to one or more bystanders in proximity to the user (e.g.,by broadcasting a visual and/or auditory alert), such they can takeaction. As another example, the mobile device 102 can generate andtransmit a notification to the server computer system 104 (e.g., torelay the notification to others and/or to store the information forfuture analysis). Thus, assistance can be rendered to the user 110 morequickly and effectively.

In some cases, the system 100 can determine that the user 110 hasexperienced an external force, but has not fallen and is not in need ofassistance. As an example, the user 110 may experiences vibrationsand/or jostling while riding a bicycle (e.g., due to roughness of a roador trail surface), but has not fallen and can continue biking withoutassistance from others. As an example, the user 110 may have experienceimpacts during an athletic activity (e.g., bumped by another user whileplaying basketball, struck a ball or the ground while playingvolleyball, etc.), but has not fallen due to the impact and is able torecover without assistance from others. Accordingly, the system 100 canrefrain from generating and transmitting a notification to others.

In some cases, the system 100 can determine that the user 110 hasfallen, but that the user is not in need of assistance. As an example,the user 110 may have fallen as a part of an athletic activity (e.g.,fallen while biking), but is able to recover without assistance fromothers. Accordingly, the system 100 can refrain from generating anotification and/or transmitting a notification to others.

In some cases, the system 100 can make these determinations based onsensor data obtained before, during, and/or after an impact experiencedby the user 110. For example, the mobile device 102 can collect sensordata (e.g., acceleration data, orientation data, location data, etc.),and the system 100 can use the sensor data to identify a point in timeat which the user experienced an impact. Further, the system 100 cananalyze the sensor data obtained during the impact, prior to the impact,and/or after the impact to determine whether the user has fallen, and ifso, whether the user may be in need of assistance.

In some implementations, the system 100 can make these determinationsbased on contextual information, such as the activity that the user wasperforming at or around the time the user experienced an impact or otherforce. This be can be beneficial, for example, in improving the accuracyand/or sensitivity by which the system 100 can detect falls.

For instance, the system 100 can determine whether a user has fallen(and whether the user is in need of assistance) using different sets ofrules or criteria, depending on the activity that the user was performat or around the time that she experienced an impact or other force. Asan example, the system 100 can determine that the user was performing afirst activity (e.g., walking) and determine whether a user has fallenbased on a first set of rules or criteria specific to that firstactivity. As another example, the system 100 can determine that the userwas performing a second activity (e.g., biking) and determine whether auser has fallen based on a first set of rules or criteria specific tothat second activity. As another example, the system 100 can determinethat the user was performing a third activity (e.g., playing basketball)and determine whether a user has fallen based on a first set of rules orcriteria specific to that third activity. Each set of rules or criteriacan be specifically tailored to its corresponding activity, such thatfalse positives and/or false negatives are reduced.

In some implementations, the system 100 can utilize a first set of rulesor criteria by default (e.g., a default set of rules or criteria fordetermining whether a user has fallen). Upon determining that the useris performing a particular activity, the system 100 can utilize a set ofrules or criteria that is specific to that activity. Further, upondetermining that the user has ceased performing that activity, thesystem 100 can revert to the first set of rules or criteria.

As an example, in some implementations, the system 100 can utilize adefault set of rules or criteria for detecting whether the user hasfallen during frequent day to as activities, such as walking, climbingstairs, etc. Upon determining that the user is biking, the system 100can utilize a specialized set of rules or criteria that are specific todetecting whether the user has fallen while biking. Further, upondetermining that the user is participating in an activity in which usercommonly experiences large impacts (e.g., volleyball, basketball, etc.),the system 100 can utilize another specialized set of rules or criteriathat are specific to detecting whether the user has fallen whileparticipating on that activity. Further, upon determining that the useris no longer participating in activity for which the system 100 hasspecialized sets of rules or criteria, the system 100 can revert tousing the default set of rules or criteria for determining whether theuser has fallen.

In some implementations, the system 100 can determine whether a user hasfallen (and whether the user is in need of assistance) using a statemachine having several states, where each state corresponds to adifferent type of activity and a different corresponding set ofcriteria.

An example state machine 300 is shown in FIG. 3 . In this example, thestate machine includes three states 302 a-302 c, each corresponding to adifferent type of activity, and each being associated with a differentset of rules or criteria for determining whether the user has fallenand/or whether the user is in need of assistance.

As an example, the first state 302 a can correspond to a defaultactivity. Further, first state 302 a can be associated with a defaultset of rules or criteria for determining whether a user has fallenand/or whether the user is in need of assistance. In someimplementations, the default activity can correspond to one or more ofwalking, jogging, running, standing, and/or sitting.

As another example, the second state 302 b can correspond to a bikingactivity. Further, the second state 302 b can be associated with a setof rules or criteria for determining whether a user has fallen and/orwhether the user is in need of assistance, specifically in the contextof biking.

As another example, the second state 302 c can correspond to an activityin which user commonly experiences large impacts (e.g., volleyball,basketball, etc.). Further, the third state 302 c can be associated witha set of rules or criteria for determining whether a user has fallenand/or whether the user is in need of assistance, specifically in thecontext of high impact activities.

In an example operation, the system 100 is initially set to a defaultstate (e.g., the first state 302 a) and determines whether a user hasfallen and/or whether the user is in need of assistance based on thedefault set of rules or criteria that is associated with that state.

Upon determining that the user is performing a different activity, thesystem 100 transitions to the state corresponding to that activity, anddetermines whether a user has fallen and/or whether the user is in needof assistance based on the set of rules or criteria that is associatedwith that new state.

For example, upon determining that the user is biking, the system 100can transition from the first state 302 a to the second state 302 b, andcan determine whether a user has fallen and/or whether the user is inneed of assistance based on the set of rules or criteria that isassociated with the second state 302 b.

For example, upon determining that the user has ceased biking and isinstead playing basketball, the system 100 can transition from thesecond state 302 b to the third state 302 c, and can determine whether auser has fallen and/or whether the user is in need of assistance basedon the set of rules or criteria that is associated with the third state302 c.

Upon determining that the user is no longer performing an specializedactivity (e.g., an activity that is not associated with a state otherthan the default first state 302 a), the system 100 transitions back tothe default first state 302 a, and determines whether a user has fallenand/or whether the user is in need of assistance based on the defaultset of rules or criteria that is associated with that state.

Although the state machine 200 shown in FIG. 2 includes three states,this is merely an illustrative example. In practice, a state machine caninclude any number of states corresponding to any number of activities(and in turn, any number of different sets of rules or criteria).

In implementations, the system 100 can determine the type of activitybeing performed by a user based on sensor data obtained by the mobiledevice 102, such as location data, acceleration data, and/or orientationdata For example, each type of activity may be identified by detectingcertain characteristics or combinations of characteristics the sensordata that are indicative of that type of activity. For example, a firsttype of activity may correspond to sensor data having a first set ofcharacteristics, a second type of activity may correspond to sensor datahaving a second set of characteristics, a third type of activity maycorrespond to sensor data having a third set of characteristics, and soforth. The system 100 can identify type of activity being performed by auser by obtaining sensor data from the mobile device 102, anddetermining that the sensor data exhibits a particular set ofcharacteristics.

As an example, the system 100 can determine whether the user is bikingbased on the distance that a user traveled and/or speed that which theuser traveled prior to the impact (e.g., based on output from a locationsensor, such as a GPS sensor). For example, a greater distance and/or ahigher speed (e.g., greater than certain threshold values) may indicatethat the user is biking, whereas a lower distance and/or a lower speed(e.g., less than certain threshold values) may indicate that that theuser is walking.

As another example, the system 100 can determine whether the user isbiking based on sensor measurements from an accelerometer and/ororientation sensor (e.g., gyroscope) of the mobile device 102. Forexample, a user might experience certain types of impacts and/or changethe orientation of her body (e.g., her wrist) in certain ways whilebiking, and experience different types of impacts and/or change theorientation of her body in different ways while walking.

As another example, the system 100 can determine whether the user isperforming an activity in which user commonly experiences large impacts(e.g., volleyball, basketball, etc.) based on sensor measurements froman accelerometer and/or orientation sensor (e.g., gyroscope) of themobile device 102. For example, when a user plays volleyball, a user maycommonly move her arm or wrist (to which the mobile device 102 isattached) according to a distinctive pattern. The system 100 candetermine, based on the sensor data, whether the user is moving her armor wrist according to that pattern, and if so, determine that the useris playing volleyball.

In some implementations, the system 100 can determine whether the useris performing a particular activity based on manual user input. Forexample, prior to or during the performance of an activity, a user canmanually identify that activity to the mobile device 102 and/or system100. For example, prior to biking, a user can input data (e.g., to themobile device 102) indicating that she is about to go biking. Based onthe user input, the system 100 can determine that the user will bebiking. In some implementations, a user can provide input to a mobiledevice 102 by selecting a particular activity (e.g., from a list or menuon candidate activities). In some implementations, a user can provideinput to a mobile device 102 by selecting a particular application orfeature of the mobile device 102 that is specific to or otherwiseassociated with that activity (e.g., an exercise application orfeature).

Although example techniques for identifying a user's activity aredescribed herein, these are merely illustrative examples. In practice,other techniques also can be performed to identify a user's activity,either instead of or in addition to those described herein.

As described above, the system 100 can utilize a context-specific set orrules or criteria for determining whether a user has fallen (and whetherthe user is in need of assistance) while the user performs certainactivities, such as biking.

In general, the context-specific sets or rules or criteria can pertainto sensor data obtained by the mobile device 102 worn by the user. As anexample, the sets or rules or criteria can pertain to location dataobtained by one or more location sensors (e.g., one or more GPSsensors), acceleration data (e.g., impact data) obtained by one or moreaccelerometers, and/or orientation data obtained by one or moreorientation sensors (e.g., gyroscopes, inertial measurement units,etc.). Certain combinations of measurements may indicate that, incertain contexts, a user has fallen and may be in need of assistance.

As an example, a mobile device 102 can be worn by a user on her wrist bybiking. Further, the mobile device 102 can obtain sensor datarepresenting the orientation of the mobile device 102 (andcorrespondingly, the orientation of the user's wrist or arm) and theacceleration experienced by the mobile device (e.g., representingmovements of the user's wrist or arm) prior to, during, and after animpact. In a biking context, sensor measurements indicating that userhas (i) changed the orientation of her wrist by a large degree (e.g.,greater than a threshold amount) and (ii) moved her wrist or arm by alarge degree (e.g., greater than a threshold amount) may be indicativethat the user has fallen.

In contrast, sensor measurements indicating that user has (i) changedthe orientation of her wrist by a small degree (e.g., not greater than athreshold amount) and (ii) moved her wrist or arm by a large degree(e.g., greater than a threshold amount) may be indicative that the useris biking on rough terrain but has not fallen.

Further, sensor measurements indicating that user has (i) changed theorientation of her wrist by a large degree (e.g., not greater than athreshold amount) and (ii) moved her wrist or arm by a small degree(e.g., not greater than a threshold amount) may be indicative that theuser is signaling or performing a gesture, and has not fallen.

Further, sensor measurements indicating that user has (i) changed theorientation of her wrist by a small degree (e.g., not greater than athreshold amount) and (ii) moved her wrist or arm by a small degree(e.g., not greater than a threshold amount) may be indicative that theuser is static and has not fallen.

As another example, in a biking context, sensors measurements indicatingthat the user (i) has traveled a large distance (e.g., greater than athreshold distance) prior to an impact, (ii) experienced highlydirectional impacts over time (e.g., a variation, spread, or range ofimpact directions that is less than a threshold level), and (iii)rotated her wrist a small amount (e.g., less than a threshold amount)may indicate that the user is biking normally, and has not fallen.However, sensor measurement indicating that the user (i) has traveled ashort distance (e.g., less than a threshold distance) after an impact,(ii) experienced impacts with respect to a wide range of directions overtime (e.g., a variation, spread, or range of impact directions that isgreater than a threshold level), and (iii) rotated her wrist a largeamount (e.g., greater than a threshold amount) may indicate that theuser has fallen while biking.

For instance, FIG. 4A shows sensor data 400 representing the orientationof a mobile device that is worn of a user's wrist while bicycling,measured over a 4 second time window (e.g., extending from two secondsprior to the user experiencing an impact at time 0, until two secondsafter the user experiencing the impact). In this example, theorientation of the mobile device (and in turn, the orientation of theuser's hand and/or wrist) is relatively stable during the time prior tothe impact. However, upon the user experiencing the impact, theorientation of the mobile device exhibits a large angular change over ashort time interval (e.g., approximately 0.1 second). Further, theorientation of the mobile device exhibits a large angular change overthe entire time window.

These characteristics may be indicative of a fall. For example, a system100 can determine that the user has fallen from her bicycle if (i) theangular change in the orientation of the mobile device over the timewindow (e.g., a 4 second window) is greater than a first thresholdamount θ₁, and (ii) the angular change in the orientation of the mobiledevice over a subset of that time window (e.g., a 0.1 second subset ofthe 4 second time window) is greater than a second threshold amount θ₂.Otherwise, the system 100 can determine that the user has not fallenfrom her bicycle.

FIG. 4B shows additional sensor data 450 representing the orientation ofa mobile device that is worn of a user's wrist while bicycling, measuredover a 4 second time window (e.g., extending from two seconds prior tothe user experiencing an impact at time 0, until two seconds after theuser experiencing the impact). In this example, the orientation of themobile device (and in turn, the orientation of the user's hand and/orwrist) is relatively stable during the entirety time window.

These characteristics may indicate that the user has not fallen. Forexample, a system 100 can determine that the user has not fallen fromher bicycle if (i) the angular change in the orientation of the mobiledevice over the time window (e.g., a 4 second window) is not greaterthan a first threshold amount θ₁, and/or (ii) the angular change in theorientation of the mobile device over a subset of that time window(e.g., a 0.1 second subset of the 4 second time window) is not greaterthan a second threshold amount θ₂.

In practice, the time window, the subset of the time window, and thethreshold amounts can differ, depending on the implementation. Forexample, the time window, the subset of the time window, and thethreshold amounts can be tunable values that are selected based onexperimental studies of the characteristics of users' movements whileriding bicycles.

As another example, a system 100 can determine that a user has fallen bybiking upon receiving sensor measurements indicating that the user (i)experienced vibrations that are characteristic of bicycling prior to theimpact, and (ii) has not experienced vibrations that are characteristicof bicycling within a particular time interval after the impact (e.g.,within a threshold time interval T). In contrast, the system 100determine that a user has not fallen upon receiving sensor measurementsindicating that the user (i) experienced vibrations that arecharacteristic of bicycling prior to the impact, and (ii) has againexperienced vibrations that are characteristic of bicycling within theparticular time interval after the impact (e.g., within the thresholdtime interval T).

As another example, while biking, a user may orient her wristdifferently, depending on the configuration of her bicycle's handlebars.The system 100 can infer the configuration of the handlebars, and applydifferent sets of rules or criteria for each configuration.

For instance, FIG. 5 shows an example bicycle 502 having horizontal (orapproximately horizontal) handlebars 504. In this example, the user 110is wearing the mobile device 102 on one of her wrists, and is graspingthe handlebars 504 with her hands. The x-axis and y-axis of the mobiledevice 102 are shown extending from the mobile device 102. They-direction extends along (or approximately along) the handlebars 504,the x-direction extends along (or approximately along) the user's arm,and the z-direction (not shown) extends perpendicular to a face of themobile device 102). Sensor measurements indicating that the userexperienced a high intensity impact (e.g., greater than a thresholdlevel) in a Y-direction may indicate that the user has fallen whilebiking. However, sensor measurements indicating that the userexperienced a low intensity impact (e.g., less than the threshold level)in the Y-direction may indicate that the user is biking normally, andhas not fallen.

As an example, FIG. 6A shows sensor data 600 representing theacceleration of a mobile device that is worn of a user's wrist whilebicycling, measured in the x-direction and the y-direction over a 1.2second time window (e.g., extending from 0.6 seconds prior to the userexperiencing an impact at time 0, until 0.6 seconds after the userexperiencing the impact). In this example, the mobile device (and inturn, the user) experienced a high intensity impact in both thex-direction and y-direction (e.g., above a threshold intensity level),which may be characteristic of the user falling.

As another example, FIG. 6B shows sensor data 620 representing theacceleration of a mobile device that is worn of a user's wrist whilebicycling, measured in the x-direction and y-direction over a 1.2 secondtime window (e.g., extending from 0.6 seconds prior to the userexperiencing an impact at time 0, until 0.6 seconds after the userexperiencing the impact). In this example, the mobile device (and inturn, the user) experienced a high intensity impact in the x-direction(e.g., in the direction along the user's arm). However, the mobiledevice (and in turn, the user) did not experience a high intensityimpact in the y-direction (e.g., in a direction along the handlebars).This may be indicative of the user not falling.

For instance, a system 100 can determine that the user has fallen fromher bicycle if (i) the intensity of the impact experienced in ax-direction is greater than a first threshold amount I₁, and (ii) theintensity of the impact experienced in a y-direction is greater than asecond threshold amount I₂. Otherwise, the system 100 can determine thatthe user not fallen. In practice, the threshold amounts can differ,depending on the implementation. For example, the threshold amounts canbe tunable values that are selected based on experimental studies of thecharacteristics of users' movements while riding bicycles.

Further, FIG. 7 shows another example bicycle 702 having vertical (orapproximately vertical) handlebars 704. In this example, the user 110 iswearing the mobile device 102 on one of her wrists, and is grasping thehandlebars 454 with her hands. The x-axis and y-axis of the mobiledevice 102 are shown extending from the mobile device 102. They-direction extends along (or approximately along) the handlebars 704,the x-direction extends along (or approximately along) the user's arm,and the z-direction (not shown) extends perpendicular to a face of themobile device 102). Sensor measurements indicating that the user (i) hasmoved her hand chaotically, (ii) experienced a high intensity impact(e.g., greater than a first threshold level I₁) in a Y-direction, and(iii) a high intensity impact (e.g., greater than a second thresholdlevel I₂) in a Z-direction may indicate that the user has fallen whilebiking. However, sensor measurement indicating that the user (i) hasmaintained her hand is a stable vertical direction, (ii) experienced ahigh intensity impact (e.g., greater than the first threshold level I₁)in a Y-direction, and (iii) a low intensity impact (e.g., lower than thesecond threshold level I₂) in a Z-direction may indicate that the useris biking normally, and has not fallen.

For example, a system 100 can determine that a user has fallen by bikingupon receiving sensor measurements indicating that (i) the variation,spread, or range of the directions of orientation of the mobile device102 is greater than a threshold level (e.g., indicative of chaoticmovement by the user), (ii) the mobile device experienced a highintensity impact (e.g., greater than the threshold level I₁) in aY-direction, and (iii) the mobile device experience a high intensityimpact (e.g., greater than the second threshold level I₂) in aZ-direction.

As another example, a system 100 can determine that user has maintainedher hand is a stable vertical direction by determining that (i) thevariation, spread, or range of the orientation of the mobile device 102is not greater than a threshold level, and (ii) the angle between they-direction of the mobile device 102 and the vertical direction is lessthan a threshold angle θ_(T). Further, upon additionally determiningthat (i) the mobile device experienced a high intensity impact (e.g.,greater than the threshold level I₁) in a Y-direction, and (iii) themobile device experience a low intensity impact (e.g., not greater thanthe second threshold level I₂) in a Z-direction, the system 100 candetermine that this user has not fallen while biking.

As described above, upon determining that a user has fallen and requiresassistance, the mobile device 102 can generate and transmit anotification to one or more communications devices 106 to notify one ormore users 112 (e.g., caretakers, physicians, medical responders,emergency contact persons, etc.) of the situation, such that they cantake action. In some implementations, notification can be generated andtransmitted upon the satisfaction of certain criteria in order to reducethe occurrence of false positives.

For instance, FIG. 8 shows an example process 800 for generating andtransmitting a notification in response to a user falling.

In the process 800, a system (e.g., the system 100 and/or the mobiledevice 102) determines whether a user was biking before experiencing animpact (block 802). The system can make this determination based onsensor data obtained by a mobile device worn by the user (e.g., asdescribed above).

If the system determines that the user was not biking, the system candetect whether a user has fallen using a default technique (block 850).For example, referring to FIG. 3 , the system can detect whether a userhas fallen according to a default set of rules of criteria that are notspecific to biking.

If the system determines that the user was biking, the system determineswhether the impact has characteristics off a biking fall (block 802).The system can make this determination based on sensor data obtained bya mobile device worn by the user (e.g., as described above).

If the system determines that the impact does not have characteristicsoff a biking fall, the system refrains from generating and transmittinga notification (block 812).

If the system determines that the impact has the characteristics of abiking fall, the system determines whether the user has stopped bikingafter the impact (block 806). The system can make this determinationbased on sensor data obtained by a mobile device worn by the user (e.g.,as described above).

If the system determines that the user has not stopped biking after theimpact, the system refrains from generating and transmitting anotification (block 812).

If the system determines that the user has stopped biking after theimpact, the system determines whether the user has remained sufficientlystill for a period of time (e.g., a one minute time interval) after theimpact (block 808). The system can make this determination based onsensor data obtained by a mobile device worn by the user (e.g., bydetermining whether the mobile device has moved more than a thresholddistance, changed its orientation by more than a threshold angle, movedfor a length of time greater than a threshold amount of time, etc.).

If the system determines that the user has not remained sufficientlystill for the period of time, the system refrains from generating andtransmitting a notification (block 812).

If the system determines that the user has remained sufficiently stillfor the period of time, the system generates and transmit a notification(block 810).

In some implementations, upon detecting that a user has fallen, themobile device 102 can determine whether a user remains immobile afterthe fall for a particular time interval (e.g., 30 seconds). Upondetermining that user has remained immobile, the mobile device 102present an alert notification to the user, including an option togenerate and transmit a notification (e.g., an emergency responder) andan option to refrain from generating and training a notification. Anexample of this alert notification is shown in FIG. 9A.

If the user does not provide any input within a particular time interval(e.g., within 60 seconds after the fall), the mobile device 102 canpresent an alert notification to the user showing a count down, andindicating that a notification will be generated and transmitted uponexpiration of the count down, absent input otherwise by the user. Anexample of this alert notification is shown in FIG. 9B.

Upon expiration of the count down without input from the user, themobile device 102 generates and transmits a notification (e.g., as shownin FIG. 9C).

This technique can be beneficial, for example, in further reducing theoccurrence of false positives and reducing the likelihood thatnotifications are transmitted to others (e.g., emergency services) inerror when the user does not actually require assistance.

Example Processes

An example process 1000 for determining whether a user has fallen and/ormay be in need of assistance using a mobile device is shown in FIG. 1000. The process 1000 can be performed for example, using the mobile device102 and/or the system 100 shown in FIGS. 1 and 2 . In some cases, someor all of the process 1000 can be performed by a co-processor of themobile device. The co-processor can be configured to receive motion dataobtained from one or more sensors, process the motion data, and providethe processed motion data to one or more processors of the mobiledevice.

In the process 1000, a mobile device receives sensor data obtained byone or more sensor over a time period (block 1002). The one or moresensors are worn by a user.

In some implementations, the mobile device can be a wearable mobiledevice, such as a smart watch.

In some implementations, at least some of the one or more sensors can bedisposed on or in the mobile device. In some implementations, at leastsome of the one or more sensors are remote from the mobile device. Forexample, the mobile device can be a smart phone, and the sensors can bedisposed on a smart watch that is communicatively coupled to the smartphone.

In general, the sensor data can include one or more types of data. Forexample, the sensor data can include location data obtained by one ormore location sensors of the mobile device. As another example, thesensor data can include acceleration data obtained by one or moreacceleration sensors of the mobile device. As another example, thesensor data can include orientation data obtained by one or moreorientation sensors of the mobile device.

Further, the mobile device determines a context of the user based on thesensor data (block 1004). In some implementations, the context cancorrespond to a type of activity performed by the user during the timeperiod. Example contexts include bicycling, walking, running, jigging,playing a sport (e.g., basketball, volley, etc.), or any other activitythat may be performed by a user.

Further, the mobile device obtains a set of rules for processing thesensor data based on the context (block 1006). The set of rules isspecific to the context.

Further, the mobile device determines a likelihood that the user hasfallen and/or a likelihood that the user requires assistance based onthe sensor data and the set of rules (block 1008).

As described above, the mobile device determines a likelihood that theuser has fallen and/or a likelihood that the user requires assistanceusing sets of rules that are specific to the context. As illustrativeexamples, sets of rules for a bicycling context are described above.

As an example, determining the likelihood that the user has fallenand/or the likelihood that the user requires assistance can include (i)determining, based on the sensor data, that a distance traveled by theuser prior over the period of time is greater than a first thresholdvalue, and (ii) determining, based on the sensor data, that a variationin a direction of impacts experienced by the user over the period oftime is less than a second threshold value, (iii) determining, based onthe sensor data, that a rotation of the user's wrist over the period oftime is less than a third threshold value, and (iv) determining that theuser has fallen and/or requires assistance based on the determinationthat the distance traveled by the user prior over the period of time isgreater than the first threshold value, the determination that thevariation in a direction of impacts experienced by the user over theperiod of time is less than the second threshold value, and thedetermination that the rotation of the user's wrist over the period oftime is less than the third threshold value.

As another example, determining the likelihood that the user has fallenand/or the likelihood that the user requires assistance can include (i)determining, based on the sensor data, that a magnitude of an impactexperienced by the user over the period of time in a first direction isgreater than a first threshold value, and (ii) determining that the userhas fallen and/or requires assistance based on the determination thatthe magnitude of the impact experienced by the user over the period oftime in the first direction is greater than the first threshold value.

As another example, determining the likelihood that the user has fallenand/or the likelihood that the user requires assistance can include (i)determining, based on the sensor data, that a change in an orientationof the user's hand over the period of time is greater than a firstthreshold value, (ii) determining, based on the sensor data, that amagnitude of an impact experienced by the user over the period of timein a first direction is greater than a second threshold value, whereinthe first direction is orthogonal to the second threshold value, (iii)determining, based on the sensor data, that a magnitude of an impactexperienced by the user over the period of time in a second direction isgreater than a third threshold value, and (iv) determining that the userhas fallen and/or requires assistance based on the determination thatthe change in an orientation of the user's hand over the period of timeis greater than the first threshold value, the determination that themagnitude of the impact experienced by the user over the period of timein the first direction is greater than the second threshold value, andthe determination that the magnitude of an impact experienced by theuser over the period of time in the second direction is greater than thethird threshold value.

Although example sets of rules for a bicycling context are describedabove, in practice, other sets of rules also can be used for a bicyclingcontext, either instead of or in addition to those described above.Further, other sets of rules can be used for other contexts, such aswalking, running, jogging, playing a sport, etc.

Further, the mobile device generates one or more notifications based onthe likelihood that the user has fallen and/or the likelihood that theuser requires assistance (block 1010).

In some implementations, generating the one or more notifications caninclude transmitting a first notification to a communications deviceremote from the mobile device. The first notification can include anindication that the user has fallen and/or an indication that the userrequires assistance. In some implementations, the communications devicecan be an emergency response system.

In some implementations, the mobile device can perform at least aportion of the process 1000 according to a different context of theuser. For example, the mobile device can receive second sensor dataobtained by the one or more sensor over a second time period. Further,the mobile device can determine a second context of the user based onthe second sensor data, and obtain a second set of rules for processingthe sensor data based on the second context, where the second set ofrules is specific to the second context. Further, the mobile device candetermine at least one of a likelihood that the user has fallen and/or alikelihood that the user requires assistance based on the sensor dataand the second set of rules. Further, the mobile device can generate oneor more second notifications based on at least one of the likelihoodthat the user has fallen or the likelihood that the user requiresassistance.

Example Mobile Device

FIG. 11 is a block diagram of an example device architecture 1100 forimplementing the features and processes described in reference to FIGS.1-10 . For example, the architecture 1100 can be used to implement themobile device 102, the server computer system 104, and/or one or more ofthe communications devices 106. Architecture 1100 may be implemented inany device for generating the features described in reference to FIGS.1-10 , including but not limited to desktop computers, server computers,portable computers, smart phones, tablet computers, game consoles,wearable computers, set top boxes, media players, smart TVs, and thelike.

The architecture 1100 can include a memory interface 1102, one or moredata processor 1104, one or more data co-processors 1174, and aperipherals interface 1106. The memory interface 1102, the processor(s)1104, the co-processor(s) 1174, and/or the peripherals interface 1106can be separate components or can be integrated in one or moreintegrated circuits. One or more communication buses or signal lines maycouple the various components.

The processor(s) 1104 and/or the co-processor(s) 1174 can operate inconjunction to perform the operations described herein. For instance,the processor(s) 1104 can include one or more central processing units(CPUs) that are configured to function as the primary computerprocessors for the architecture 1100. As an example, the processor(s)1104 can be configured to perform generalized data processing tasks ofthe architecture 1100. Further, at least some of the data processingtasks can be offloaded to the co-processor(s) 1174. For example,specialized data processing tasks, such as processing motion data,processing image data, encrypting data, and/or performing certain typesof arithmetic operations, can be offloaded to one or more specializedco-processor(s) 1174 for handling those tasks. In some cases, theprocessor(s) 1104 can be relatively more powerful than theco-processor(s) 1174 and/or can consume more power than theco-processor(s) 1174. This can be useful, for example, as it enables theprocessor(s) 1104 to handle generalized tasks quickly, while alsooffloading certain other tasks to co-processor(s) 1174 that may performthose tasks more efficiency and/or more effectively. In some cases, aco-processor(s) can include one or more sensors or other components(e.g., as described herein), and can be configured to process dataobtained using those sensors or components, and provide the processeddata to the processor(s) 1104 for further analysis.

Sensors, devices, and subsystems can be coupled to peripherals interface1106 to facilitate multiple functionalities. For example, a motionsensor 1110, a light sensor 1112, and a proximity sensor 1114 can becoupled to the peripherals interface 1106 to facilitate orientation,lighting, and proximity functions of the architecture 1100. For example,in some implementations, a light sensor 1112 can be utilized tofacilitate adjusting the brightness of a touch surface 1146. In someimplementations, a motion sensor 1110 can be utilized to detect movementand orientation of the device. For example, the motion sensor 1110 caninclude one or more accelerometers (e.g., to measure the accelerationexperienced by the motion sensor 1110 and/or the architecture 1100 overa period of time), and/or one or more compasses or gyros (e.g., tomeasure the orientation of the motion sensor 1110 and/or the mobiledevice). In some cases, the measurement information obtained by themotion sensor 1110 can be in the form of one or more a time-varyingsignals (e.g., a time-varying plot of an acceleration and/or anorientation over a period of time). Further, display objects or mediamay be presented according to a detected orientation (e.g., according toa “portrait” orientation or a “landscape” orientation). In some cases, amotion sensor 1110 can be directly integrated into a co-processor 1174configured to processes measurements obtained by the motion sensor 1110.For example, a co-processor 1174 can include one more accelerometers,compasses, and/or gyroscopes, and can be configured to obtain sensordata from each of these sensors, process the sensor data, and transmitthe processed data to the processor(s) 1104 for further analysis.

Other sensors may also be connected to the peripherals interface 1106,such as a temperature sensor, a biometric sensor, or other sensingdevice, to facilitate related functionalities. As an example, as shownin FIG. 11 , the architecture 1100 can include a heart rate sensor 11112that measures the beats of a user's heart. Similarly, these othersensors also can be directly integrated into one or more co-processor(s)1174 configured to process measurements obtained from those sensors.

A location processor 1115 (e.g., a GNSS receiver chip) can be connectedto the peripherals interface 1106 to provide geo-referencing. Anelectronic magnetometer 1116 (e.g., an integrated circuit chip) can alsobe connected to the peripherals interface 1106 to provide data that maybe used to determine the direction of magnetic North. Thus, theelectronic magnetometer 1116 can be used as an electronic compass.

A camera subsystem 1120 and an optical sensor 1122 (e.g., a chargedcoupled device [CCD] or a complementary metal-oxide semiconductor [CMOS]optical sensor) can be utilized to facilitate camera functions, such asrecording photographs and video clips.

Communication functions may be facilitated through one or morecommunication subsystems 1124. The communication subsystem(s) 1124 caninclude one or more wireless and/or wired communication subsystems. Forexample, wireless communication subsystems can include radio frequencyreceivers and transmitters and/or optical (e.g., infrared) receivers andtransmitters. As another example, wired communication system can includea port device, e.g., a Universal Serial Bus (USB) port or some otherwired port connection that can be used to establish a wired connectionto other computing devices, such as other communication devices, networkaccess devices, a personal computer, a printer, a display screen, orother processing devices capable of receiving or transmitting data.

The specific design and implementation of the communication subsystem1124 can depend on the communication network(s) or medium(s) over whichthe architecture 1100 is intended to operate. For example, thearchitecture 1100 can include wireless communication subsystems designedto operate over a global system for mobile communications (GSM) network,a GPRS network, an enhanced data GSM environment (EDGE) network, 802.xcommunication networks (e.g., Wi-Fi, Wi-Max), code division multipleaccess (CDMA) networks, NFC and a Bluetooth™ network. The wirelesscommunication subsystems can also include hosting protocols such thatthe architecture 1100 can be configured as a base station for otherwireless devices. As another example, the communication subsystems mayallow the architecture 1100 to synchronize with a host device using oneor more protocols, such as, for example, the TCP/IP protocol, HTTPprotocol, UDP protocol, and any other known protocol.

An audio subsystem 1126 can be coupled to a speaker 1128 and one or moremicrophones 1130 to facilitate voice-enabled functions, such as voicerecognition, voice replication, digital recording, and telephonyfunctions.

An I/O subsystem 1140 can include a touch controller 1142 and/or otherinput controller(s) 1144. The touch controller 1142 can be coupled to atouch surface 1146. The touch surface 1146 and the touch controller 1142can, for example, detect contact and movement or break thereof using anyof a number of touch sensitivity technologies, including but not limitedto capacitive, resistive, infrared, and surface acoustic wavetechnologies, as well as other proximity sensor arrays or other elementsfor determining one or more points of contact with the touch surface1146. In one implementation, the touch surface 1146 can display virtualor soft buttons and a virtual keyboard, which can be used as aninput/output device by the user.

Other input controller(s) 1144 can be coupled to other input/controldevices 1148, such as one or more buttons, rocker switches, thumb-wheel,infrared port, USB port, and/or a pointer device such as a stylus. Theone or more buttons (not shown) can include an up/down button for volumecontrol of the speaker 1128 and/or the microphone 11110.

In some implementations, the architecture 1100 can present recordedaudio and/or video files, such as MP3, AAC, and MPEG video files. Insome implementations, the architecture 1100 can include thefunctionality of an MP3 player and may include a pin connector fortethering to other devices. Other input/output and control devices maybe used.

A memory interface 1102 can be coupled to a memory 1150. The memory 1150can include high-speed random access memory or non-volatile memory, suchas one or more magnetic disk storage devices, one or more opticalstorage devices, or flash memory (e.g., NAND, NOR). The memory 1150 canstore an operating system 1152, such as Darwin, RTXC, LINUX, UNIX, OS X,WINDOWS, or an embedded operating system such as VxWorks. The operatingsystem 1152 can include instructions for handling basic system servicesand for performing hardware dependent tasks. In some implementations,the operating system 1152 can include a kernel (e.g., UNIX kernel).

The memory 1150 can also store communication instructions 1154 tofacilitate communicating with one or more additional devices, one ormore computers or servers, including peer-to-peer communications. Thecommunication instructions 1154 can also be used to select anoperational mode or communication medium for use by the device, based ona geographic location (obtained by the GPS/Navigation instructions 1168)of the device. The memory 1150 can include graphical user interfaceinstructions 1156 to facilitate graphic user interface processing,including a touch model for interpreting touch inputs and gestures;sensor processing instructions 1158 to facilitate sensor-relatedprocessing and functions; phone instructions 1160 to facilitatephone-related processes and functions; electronic messaging instructions1162 to facilitate electronic-messaging related processes and functions;web browsing instructions 1164 to facilitate web browsing-relatedprocesses and functions; media processing instructions 1166 tofacilitate media processing-related processes and functions;GPS/Navigation instructions 1169 to facilitate GPS andnavigation-related processes; camera instructions 1170 to facilitatecamera-related processes and functions; and other instructions 1172 forperforming some or all of the processes described herein.

Each of the above identified instructions and applications cancorrespond to a set of instructions for performing one or more functionsdescribed herein. These instructions need not be implemented as separatesoftware programs, procedures, or modules. The memory 1150 can includeadditional instructions or fewer instructions. Furthermore, variousfunctions of the device may be implemented in hardware and/or insoftware, including in one or more signal processing and/or applicationspecific integrated circuits (ASICs).

The features described may be implemented in digital electroniccircuitry or in computer hardware, firmware, software, or incombinations of them. The features may be implemented in a computerprogram product tangibly embodied in an information carrier, e.g., in amachine-readable storage device, for execution by a programmableprocessor; and method steps may be performed by a programmable processorexecuting a program of instructions to perform functions of thedescribed implementations by operating on input data and generatingoutput.

The described features may be implemented advantageously in one or morecomputer programs that are executable on a programmable system includingat least one programmable processor coupled to receive data andinstructions from, and to transmit data and instructions to, a datastorage system, at least one input device, and at least one outputdevice. A computer program is a set of instructions that may be used,directly or indirectly, in a computer to perform a certain activity orbring about a certain result. A computer program may be written in anyform of programming language (e.g., Objective-C, Java), includingcompiled or interpreted languages, and it may be deployed in any form,including as a stand-alone program or as a module, component,subroutine, or other unit suitable for use in a computing environment.

Suitable processors for the execution of a program of instructionsinclude, by way of example, both general and special purposemicroprocessors, and the sole processor or one of multiple processors orcores, of any kind of computer. Generally, a processor will receiveinstructions and data from a read-only memory or a random access memoryor both. The essential elements of a computer are a processor forexecuting instructions and one or more memories for storing instructionsand data. Generally, a computer may communicate with mass storagedevices for storing data files. These mass storage devices may includemagnetic disks, such as internal hard disks and removable disks;magneto-optical disks; and optical disks. Storage devices suitable fortangibly embodying computer program instructions and data include allforms of non-volatile memory, including by way of example semiconductormemory devices, such as EPROM, EEPROM, and flash memory devices;magnetic disks such as internal hard disks and removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor andthe memory may be supplemented by, or incorporated in, ASICs(application-specific integrated circuits).

To provide for interaction with a user the features may be implementedon a computer having a display device such as a CRT (cathode ray tube)or LCD (liquid crystal display) monitor for displaying information tothe author and a keyboard and a pointing device such as a mouse or atrackball by which the author may provide input to the computer.

The features may be implemented in a computer system that includes aback-end component, such as a data server or that includes a middlewarecomponent, such as an application server or an Internet server, or thatincludes a front-end component, such as a client computer having agraphical user interface or an Internet browser, or any combination ofthem. The components of the system may be connected by any form ormedium of digital data communication such as a communication network.Examples of communication networks include a LAN, a WAN and thecomputers and networks forming the Internet.

The computer system may include clients and servers. A client and serverare generally remote from each other and typically interact through anetwork. The relationship of client and server arises by virtue ofcomputer programs running on the respective computers and having aclient-server relationship to each other.

One or more features or steps of the disclosed embodiments may beimplemented using an Application Programming Interface (API). An API maydefine on or more parameters that are passed between a callingapplication and other software code (e.g., an operating system, libraryroutine, function) that provides a service, that provides data, or thatperforms an operation or a computation.

The API may be implemented as one or more calls in program code thatsend or receive one or more parameters through a parameter list or otherstructure based on a call convention defined in an API specificationdocument. A parameter may be a constant, a key, a data structure, anobject, an object class, a variable, a data type, a pointer, an array, alist, or another call. API calls and parameters may be implemented inany programming language. The programming language may define thevocabulary and calling convention that a programmer will employ toaccess functions supporting the API.

In some implementations, an API call may report to an application thecapabilities of a device running the application, such as inputcapability, output capability, processing capability, power capability,communications capability, etc.

As described above, some aspects of the subject matter of thisspecification include gathering and use of data available from varioussources to improve services a mobile device can provide to a user. Thepresent disclosure contemplates that in some instances, this gathereddata may identify a particular location or an address based on deviceusage. Such personal information data can include location-based data,addresses, subscriber account identifiers, or other identifyinginformation.

The present disclosure further contemplates that the entitiesresponsible for the collection, analysis, disclosure, transfer, storage,or other use of such personal information data will comply withwell-established privacy policies and/or privacy practices. Inparticular, such entities should implement and consistently use privacypolicies and practices that are generally recognized as meeting orexceeding industry or governmental requirements for maintaining personalinformation data private and secure. For example, personal informationfrom users should be collected for legitimate and reasonable uses of theentity and not shared or sold outside of those legitimate uses. Further,such collection should occur only after receiving the informed consentof the users. Additionally, such entities would take any needed stepsfor safeguarding and securing access to such personal information dataand ensuring that others with access to the personal information dataadhere to their privacy policies and procedures. Further, such entitiescan subject themselves to evaluation by third parties to certify theiradherence to widely accepted privacy policies and practices.

In the case of advertisement delivery services, the present disclosurealso contemplates embodiments in which users selectively block the useof, or access to, personal information data. That is, the presentdisclosure contemplates that hardware and/or software elements can beprovided to prevent or block access to such personal information data.For example, in the case of advertisement delivery services, the presenttechnology can be configured to allow users to select to “opt in” or“opt out” of participation in the collection of personal informationdata during registration for services.

Therefore, although the present disclosure broadly covers use ofpersonal information data to implement one or more various disclosedembodiments, the present disclosure also contemplates that the variousembodiments can also be implemented without the need for accessing suchpersonal information data. That is, the various embodiments of thepresent technology are not rendered inoperable due to the lack of all ora portion of such personal information data. For example, content can beselected and delivered to users by inferring preferences based onnon-personal information data or a bare minimum amount of personalinformation, such as the content being requested by the deviceassociated with a user, other non-personal information available to thecontent delivery services, or publicly available information.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made. Elements of one ormore implementations may be combined, deleted, modified, or supplementedto form further implementations. As yet another example, the logic flowsdepicted in the figures do not require the particular order shown, orsequential order, to achieve desirable results. In addition, other stepsmay be provided, or steps may be eliminated, from the described flows,and other components may be added to, or removed from, the describedsystems.

Accordingly, other implementations are within the scope of the followingclaims.

What is claimed is:
 1. A method comprising: receiving, by a mobiledevice, sensor data obtained by one or more sensor over a time period,wherein the one or more sensors are worn by a user; determining, by themobile device, a context of the user based on the sensor data;obtaining, by the mobile device based on the context, a set of rules forprocessing the sensor data, wherein the set of rules is specific to thecontext; determining, by the mobile device, at least one of a likelihoodthat the user has fallen or a likelihood that the user requiresassistance based on the sensor data and the set of rules; andgenerating, by the mobile device, one or more notifications based on atleast one of the likelihood that the user has fallen or the likelihoodthat the user requires assistance.
 2. The method of claim 1, wherein thesensor data comprises location data obtained by one or more locationsensors of the mobile device.
 3. The method of claim 1, wherein thesensor data comprises acceleration data obtained by one or moreacceleration sensors of the mobile device.
 4. The method of claim 1,wherein the sensor data comprises orientation data obtained by one ormore orientation sensors of the mobile device.
 5. The method of claim 1,the context corresponds to the user bicycling during the time period. 6.The method of claim 5, wherein determining the likelihood that the userhas fallen and/or the likelihood that the user requires assistancecomprises: determining, based on the sensor data, that a distancetraveled by the user prior over the period of time is greater than afirst threshold value, determining, based on the sensor data, that avariation in a direction of impacts experienced by the user over theperiod of time is less than a second threshold value, determining, basedon the sensor data, that a rotation of the user's wrist over the periodof time is less than a third threshold value, and determining that theuser has fallen and/or requires assistance based on the determinationthat the distance traveled by the user prior over the period of time isgreater than the first threshold value, the determination that thevariation in a direction of impacts experienced by the user over theperiod of time is less than the second threshold value, and thedetermination that the rotation of the user's wrist over the period oftime is less than the third threshold value.
 7. The method of claim 5,wherein determining the likelihood that the user has fallen and/or thelikelihood that the user requires assistance comprises: determining,based on the sensor data, that a magnitude of an impact experienced bythe user over the period of time in a first direction is greater than afirst threshold value, and determining that the user has fallen and/orrequires assistance based on the determination that the magnitude of theimpact experienced by the user over the period of time in the firstdirection is greater than the first threshold value.
 8. The method ofclaim 5, wherein determining the likelihood that the user has fallenand/or the likelihood that the user requires assistance comprises:determining, based on the sensor data, that a change in an orientationof the user's hand over the period of time is greater than a firstthreshold value, determining, based on the sensor data, that a magnitudeof an impact experienced by the user over the period of time in a firstdirection is greater than a second threshold value, wherein the firstdirection is orthogonal to the second threshold value, and determining,based on the sensor data, that a magnitude of an impact experienced bythe user over the period of time in a second direction is greater than athird threshold value, determining that the user has fallen and/orrequires assistance based on the determination that the change in anorientation of the user's hand over the period of time is greater thanthe first threshold value, the determination that the magnitude of theimpact experienced by the user over the period of time in the firstdirection is greater than the second threshold value, and thedetermination that the magnitude of an impact experienced by the userover the period of time in the second direction is greater than thethird threshold value.
 9. The method of claim 5, further comprising:receiving, by the mobile device, second sensor data obtained by the oneor more sensor over a second time period; determining, by the mobiledevice, a second context of the user based on the second sensor data;obtaining, by the mobile device based on the second context, a secondset of rules for processing the sensor data, wherein the second set ofrules is specific to the second context; determining, by the mobiledevice, at least one of a likelihood that the user has fallen and/or alikelihood that the user requires assistance based on the sensor dataand the second set of rules; and generating, by the mobile device, oneor more second notifications based on at least one of the likelihoodthat the user has fallen or the likelihood that the user requiresassistance.
 10. The method of claim 1, wherein the second contextcorresponds to the user walking during the second time period.
 11. Themethod of claim 1, wherein the second context corresponds to the userplaying at least one of basketball or volleyball during the second timeperiod.
 12. The method of claim 1, wherein generating the one or morenotifications comprises: transmitting a first notification to acommunications device remote from the mobile device, the firstnotification comprising an indication that the user has fallen.
 13. Themethod of claim 12, wherein the communications device is an emergencyresponse system.
 14. The method of claim 1, wherein the mobile device isa wearable mobile device.
 15. The method of claim 1, wherein at leastsome of the one or more sensors are disposed on or in the mobile device.16. The method of claim 1, wherein at least some of the one or moresensors are remote from the mobile device.
 17. A system comprising: oneor more sensors; one or more processors; and one or more non-transitorycomputer readable media storing instructions that, when executed by theone or more processors, cause the one or more processors to performoperations comprising: receiving sensor data obtained by the one or moresensor over a time period, wherein the one or more sensors are worn by auser; determining a context of the user based on the sensor data;obtaining, based on the context, a set of rules for processing thesensor data, wherein the set of rules is specific to the context;determining at least one of a likelihood that the user has fallen or alikelihood that the user requires assistance based on the sensor dataand the set of rules; and generating one or more notifications based onat least one of the likelihood that the user has fallen or thelikelihood that the user requires assistance.
 18. One or morenon-transitory computer readable media storing instructions that, whenexecuted by one or more processors, cause the one or more processors toperform operations comprising: receiving sensor data obtained by the oneor more sensor over a time period, wherein the one or more sensors areworn by a user; determining a context of the user based on the sensordata; obtaining, based on the context, a set of rules for processing thesensor data, wherein the set of rules is specific to the context;determining at least one of a likelihood that the user has fallen or alikelihood that the user requires assistance based on the sensor dataand the set of rules; and generating one or more notifications based onat least one of the likelihood that the user has fallen or thelikelihood that the user requires assistance.